import java.util.Scanner;

public class second {

    public static void main(String[] args) {
        // write your code here
        // 2. 编程题 实现数组扩容。自定义数组长度（用户指定），
        // 扩容规则：当已存储元素数量达到总容量的 80%时，扩容到原容量的1.5 倍。
        // 例如，原容量是 10，当输入第 8 个元素时，数组进行扩容，容量从 10 变 15。
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数组长度");
        int length = sc.nextInt();
        if (length <= 0){
            System.out.println("不要乱来");
            return;
        }
        int[] saveArr = new int[length];
        //标记是否退出循环
        boolean flag = true;
        //扩容后的长度
        int afterLength = length;
        //下标
        int i = 0;
        while (flag){
            System.out.println("请输入存储的第 "+(i+1)+" 个元素");
            int saveNum = sc.nextInt();
            //存到数组中
            saveArr[i] = saveNum;
            //当已存储的数据达到80%的时候
            if (i >= afterLength*0.8 - 1){
                //创建新数组 (向上取整)
                afterLength = (int)Math.ceil(afterLength*1.5);
                System.out.println("扩容前的长度为: " +saveArr.length);
                //创建扩容数组
                int[] afterArr = new int[afterLength];
                //赋值旧数组的数据
                for (int j = 0; j < saveArr.length; j++) {
                    afterArr[j] = saveArr[j];
                }
                //替换当前数组
                saveArr = afterArr;
                System.out.println("扩容后的长度为: " +saveArr.length);
            }
            i++;
            if (saveNum == -1){
                //退出循环
                System.out.println("退出成功");
                flag = false;
            }
        }

    }
}
